Switching fabrics are generally a part of communication or networking systems organized to temporarily associate functional units, transmission channels or telecommunication circuits for the purpose of providing a desired telecommunication facility. A switching fabric can be used to interconnect boards. Switching fabrics provide high flexibility since multiple boards can communicate with each other simultaneously using switching fabrics. In networking and telecommunication systems, these boards are called line-cards. In computing applications, these boards are called adapters, blades or simply port-cards. A switching fabric can be a multi-stage switching fabric. A multi-stage switching fabric comprises a plurality of switching units that are connected to each other via physical links. Packets can be transferred from one switching-unit to another using a data link and flow control signals can be transferred using flow control links. Data links and control links form a part of the physical links.
Compute or network nodes in an interconnection network communicate by exchanging packets. Packets are generated from a source port and are queued in appropriate Virtual Output Queues (VoQs) of the switching units in the switching fabric so that the packets can be transmitted to their destined destination port via VoQs of some switching units. Each packet is destined for at least one destination port. A VoQ queues packets according to their destination ports.
However, if a destination port is not connected to a device, the VoQs dedicated to that destination port unnecessarily consume resources. Moreover, a path that a packet follows from a source port to that destination output port can get congested due to slow or no draining of the packets at the output of the fabric.
In some of the existing systems using Virtual Output Queues (VoQs) or next-stage VoQs in switching fabrics, a switching-unit sorts a plurality of packets in VoQs according to the output ports in the next switching units. This means that the VoQ arrangement in a switching-unit needs to be configured based on an actual topology of the next switching units. This requires a significant amount of configuration effort for even small size switching fabric.